package chapter02;

public class Java04_Operator {
    public static void main(String[] args) {
        // TODO 运算符
        // 参与数据运算的符号，由Java定义，无法自行定义

        // TODO 表达式
        // 采用运算符和数据连接在一起符合Java语法规则的指令代码

        // TODO 算术运算符
        // 1.二元运算符：两个元素参与运算的符号：1 + 2
        // TODO 算术表达式 = 元素1 二元运算符 元素二
        // 算术表达式的结果具有数据类型，结果去数据类型最大的一种,最小使用类型为int
        System.out.println(1 + 2);  // 3
        System.out.println(2 - 2);  // 0
        System.out.println(3 * 2);  // 6
        System.out.println(4 / 2);  // 2
        System.out.println(1 / 2);  // 0(int,int)=>int
        System.out.println(1.0 / 2);    // 0.5(double,int)=>double
        System.out.println(5 % 2);  // 1(取余、模运算)

        byte b1 = 10;
        byte b2 = 20;
        // byte b3 = b1 + b2;报错：Incompatible types. Found: 'int', required: 'byte'
        byte b3 = (byte) (b1 + b2);

        System.out.println(1 + 2 * 3);  // 7 优先级与算术运算相同
        System.out.println((1 + 2) * 3);    // 9 想先计算的运算符通过括号()括起来

        // 2.一元运算符：一个元素参与运算的符号
        // ++本质：+1操作的简化版本，自增
        // --本质：-1操作的简化版本，自减
        int i = 0;
        //int j = i;  // j=0
        //i = i + 1;  // i=1
        int j = i++;
        System.out.println("i = "+i);
        System.out.println("j = "+j);

        int i1 = 0;
        //i1 = i1 +1; // i1=1
        //int j1 = i1;    // j1=1
        int j1 = ++i1;
        System.out.println("i1 = "+i1);
        System.out.println("j1 = "+j1);
    }
}
